package cn.xxliang.platapp.pojo.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
@ApiModel("业务产品信息Dto")
public class BusinessProductInfoDto {
    @ApiModelProperty(value = "产品ID", required = true)
    @NotNull(message = "产品id不能为空")
    private String productId;

    @ApiModelProperty(value = "包ID", required = true)
    @NotNull(message = "包ID不能为空")
    private String packageId;

    @ApiModelProperty(value = "元素ID", required = true)
    @NotNull(message = "元素ID不能为空")
    private String elementId;

    @ApiModelProperty(value = "sp产品id", required = true)
    @NotNull(message = "sp产品id不能为空")
    private String spProductId;

    @ApiModelProperty(value = "切片平台产品ID", required = true)
    @NotNull(message = "切片平台产品ID不能为空")
    private String platformProductId;

    @ApiModelProperty(value = "spid", required = true)
    @NotNull(message = "spid不能为空")
    private String spId;

    @ApiModelProperty(value = "qos订购模块分配", required = true)
    @NotNull(message = "qos订购模块分配不能为空")
    private String qosProductId;

    @ApiModelProperty("产品名称")
    private String productName;

    @ApiModelProperty(value = "产品模式 2C B2C", required = true)
    @NotNull(message = "产品模式 2C B2C不能为空")
    private String productMode;

    @ApiModelProperty(value = "业务归类 0-加速 1-限速", required = true)
    @NotNull(message = "业务归类 0-加速 1-限速不能为空")
    private Integer businessClassify;

    @ApiModelProperty(value = "业务归属 0-智家守护 1-网速宝", required = true)
    @NotNull(message = "业务归属 0-智家守护 1-网速宝不能为空")
    private Integer businessOwner;

    @ApiModelProperty(value = "产品归属", required = true)
    @NotNull(message = "产品归属不能为空")
    private Integer productOwnerDictId;

    @ApiModelProperty(value = "业务方", required = true)
    @NotNull(message = "业务方不能为空")
    private String businessParty;

    @ApiModelProperty(value = "覆盖区域", required = true)
    @NotNull(message = "覆盖区域不能为空")
    private String areaInfo;

    @ApiModelProperty("产品资费")
    private String productTariff;

    @ApiModelProperty(value = "归属集团部门", required = true)
    @NotNull(message = "归属集团部门不能为空")
    private String departmentGroup;

    @ApiModelProperty(value = "产品类型 0-主产品 1-附加产品 2-增值产品 3-权益产品 4-体验产品 5-测试产品", required = true)
    @NotNull(message = "产品类型 0-主产品 1-附加产品 2-增值产品 3-权益产品 4-体验产品 5-测试产品不能为空")
    private Integer productType;

    @ApiModelProperty("产品优先级 1-9 数字越小 优先级越高")
    private Integer productLevel;

    @ApiModelProperty(value = "产品状态 0-待上架 1-已上架 2-下架", required = true)
    @NotNull(message = "产品状态 0-待上架 1-已上架 2-下架不能为空")
    private Integer productStatus;

    @ApiModelProperty("产品描述")
    private String productDesc;

    @ApiModelProperty("包名称 需要和cbss确认")
    private String packageName;

    @ApiModelProperty("包描述 默认为空")
    private String packageDesc;

    @ApiModelProperty("元素名称 需要和cbss确认")
    private String elementName;

    @ApiModelProperty(value = "元素类型 0-资费 1-增值 需要和cbss确认", required = true)
    @NotNull(message = "元素类型 0-资费 1-增值 需要和cbss确认不能为空")
    private Integer elementType;

    @ApiModelProperty(value = "产品上游系统ID", required = true)
    @NotNull(message = "产品上游系统ID不能为空")
    private Integer northSystemId;

    @ApiModelProperty("删除标识 0-正常 1-删除")
    private Integer deleteFlag;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("主键")
    private String businessProductId;
}


